﻿using Acaweb.Data.Contracts;
using Acaweb.Model.Entities;
using Acaweb.Model.Entities.DatosCompuestos;
using Acaweb.Componentes.Contracts;
using System.Collections.Generic;
using System.Linq;

namespace Acaweb.Componentes
{
    public class MunicipiosService : BaseService, IMunicipiosService
    {
        private IMunicipiosDao _MunicipiosDao;
        private IDepartementosDao _DepartamentosDao;

        public IMunicipiosDao MunicipiosDao
        {
            get { return _MunicipiosDao; }
            set { _MunicipiosDao = value; }
        }

        public IDepartementosDao DepartamentosDao
        {
            get { return _DepartamentosDao; }
            set { _DepartamentosDao = value; }
        }

        public IList<Municipios> GetAll()
        {
            return MunicipiosDao.GetAll();
        }

        public Municipios GetById(int Id)
        {
            return MunicipiosDao.GetById(Id);
        }

        public IList<Municipios> GetByDepartamento(int CodigoDepartamento)
        {
            return MunicipiosDao.GetByDepartamento(CodigoDepartamento).OrderBy(t => t.Nombre).ToList();
        }


        public IList<Municipios> GetByNombreDepartamento(string Departamento)
        {
            int CodigoDepartamento = DepartamentosDao.GetByNombre(Departamento).CodigoDepartamento;
            return MunicipiosDao.GetByDepartamento(CodigoDepartamento).OrderBy(t=>t.Nombre).ToList();
        }


        public IList<Municipios> GetByNombre(string Nombre)
        {
            return MunicipiosDao.GetByNombre(Nombre).OrderBy(t => t.Nombre).ToList();
        }
    }
}
